home *** CD-ROM | disk | FTP | other *** search
- /************************************************************************
-
- Initialize segment for Application.
-
- Created from Apple's Sample Code GetZoneList.c January 31, 1989
-
- Modified Sept. 10th, 1990
- Change MPPOpen() and ATPOpen() call to OpenDriver('.MPP',&refNum)
- calls, as outlined in TechNote 224: Opening AppleTalk.
- ************************************************************************/
-
- #include "MyExceptionHandler.h"
- #include "GetZoneInclude.h"
-
- /* Globs */
- extern SysEnvRec gMac; /* set up by Initialize */
- extern Boolean gHasWaitNextEvent; /* set up by Initialize */
- extern Boolean gInBackground; /* maintained by Initialize and DoEvent */
-
- extern ListHandle gList; /* the list to be filled with zone names */
-
- /* globals added for C sample use as the Pascal
- example used those horrid :-) nested procedures! */
- extern ATPPBPtr gATPPBPtr; /* the parameter block for GetZoneList call */
- extern Ptr gZones; /* the data buffer for GetZoneList call */
- extern DialogPtr gErrDlg; /* Dialog used for displaying zone list */
-
- #define _Unimplemented 0x9f
- Boolean TrapAvailable(tNumber, tType)
- short tNumber;
- int tType;
- {
- return( NGetTrapAddress(tNumber, tType) != GetTrapAddress(_Unimplemented) );
- } /* TrapAvailable */
-
-
- pascal void HandleErr_Initialize(error, message)
- short error;
- long message;
- {
- if (error > 0) AlertUser(0, error);
- else AlertUser(error, message);
- ExitToShell();
- } /* HandleErr_Initialize */
-
- void Initialize()
- {
- Handle menuBar;
- OSErr ignoreError;
- long total, contig;
- Boolean ignoreResult;
- EventRecord event;
- short count, refNum;
- FailInfo fi;
-
- gHasWaitNextEvent = TrapAvailable(_WaitNextEvent, ToolTrap);
- gInBackground = false;
-
- InitGraf(&thePort);
- InitFonts();
- InitWindows();
- InitMenus();
- TEInit();
- InitDialogs(nil);
- InitCursor();
-
- /* get MultiFinder started */
- for (count=1;count<3;count++)
- ignoreResult = EventAvail(everyEvent, &event);
-
- CatchCFailures(&fi, HandleErr_Initialize);
-
- #if 0
- /* FailOSErrMsg(MPPOpen(), eAppleTalk);
- FailOSErrMsg(ATPLoad(), eAppleTalk); /*Change to OpenDriver call */
- #endif
- FailOSErrMsg(OpenDriver("\p.MPP", &refNum),eAppleTalk); /* See: Tn.224 */
-
- ignoreError = SysEnvirons(kSysEnvironsVersion, &gMac);
- if (gMac.machineType < 0) Failure(0, eWrongMachine);
-
- if ((char *) GetApplLimit() - (char *) ApplicZone() < kMinHeap)
- Failure(0, eSmallSize);
-
- PurgeSpace(&total, &contig);
- if (total < kMinSpace) Failure(0, eNoMemory);
-
- menuBar = GetNewMBar(rMenuBar); /* read menus into menu bar */
- FailnilMsg(menuBar, eNoMemory);
-
- SetMenuBar(menuBar); /* install menus */
- DisposHandle(menuBar);
- AddResMenu(GetMHandle(mApple), 'DRVR'); /* add DA names to Apple menu */
- DrawMenuBar();
-
- Success(&fi);
- } /* Initialize */
-